In computer technology, the virtualization refers to the abstraction of computer resources. The virtualization may take several forms. In one form, the virtualization consists in presenting to some users or computer systems a plurality of computer resources, for instance a plurality of physical computer resources, in such a manner that the plurality of resources are perceived by the users or computer systems as one single computer resource, for instance one single physical computer resource. In another form, the virtualization consists in presenting to some users or computer systems a single computer resource, for instance a physical computer resource, in such a manner that the resource is perceived by the users or computer systems as a plurality of computer resources, for instance a plurality of physical resources. In yet another form, the virtualization consists in presenting to some users or computer systems a computer resource in such a manner that the resource is perceived by the users or computer systems as having properties which differ from its actual properties.
The purposes of virtualization in computer technology include, but are not limited to, the presentation of a complex computer system or resource to some users or computer systems as a simpler system or resource for easing the access by the users or computer systems to the system or resource; the presentation of a large computer system or resource to some users or computer systems as a series of small, isolated systems and resources for privacy and security reasons; and the presentation of a computer system or resource offering a first external interface as a system or resource offering a second external interface, different from the first interface for easing the interfacing with the system or resource.
In this context, the action of presenting to users or computer systems means operating an interface between one or more physical computer resources and the users or computer systems in such a manner that some physical properties or characteristics of the one or more physical computer resources, including their numbers, are hidden or viewed as altered.
A computer resource may be a hardware device, such as a server computer or a data storage device, or a software device, such as an operating system, an application configured for running on a computer or a middleware application.
One way to implement and operate the virtualization of a single physical computer resource such as a computer is to execute a virtualization control program on the single physical computer resource. The virtualization control program is referred to here as host software. The host software creates on the single physical computer resource a complete, simulated computer environment for guest software. The guest software, which may for instance be a complete operating system, runs as it was a complete standalone computer environment running on a hardware platform in such a manner that the users accessing the guest software have the perception that only said guest software runs on the hardware platform.
In comparison to a conventional software application, the software application which operates as guest software may or may not be modified to be enabled to run as guest software on the host software. The hardware on which the host and guest software applications run may also be modified to allow the virtualization.
A platform virtualization, for instance an operating system virtualization, is generally performed by partitioning the memory disk of the single physical computer resource. That is, the host software partitions the memory disk of the single physical computer resource so that each guest software instance has a reserved portion of the resource's memory.
Partitioning a memory disk such as a hardware disk may lead to the formation of “images” of the same original data entities on the memory disk. In other words, several copies of the same original data entities are copied on different, separate partitions of the memory disk. This is caused by the use of a plurality of guest software applications on the host software.
Such partitioning of a memory disk for supporting virtualization has disadvantages. The memory space needed to save the data relating to each guest software instance is significant. Therefore, cache management on the supporting hardware system is not optimized, since the cache of the host computer may manage at a given moment access to several images. The problem is intensified when the number of images is raised, for instance when a user has the opportunity to create several instances of the guest software applications.
It is therefore desirable to provide a method for virtualization of computer resources which solves or partially solve the above-mentioned problems.